{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-09-28T08:13:39.021083Z",
     "iopub.status.busy": "2025-09-28T08:13:39.020807Z",
     "iopub.status.idle": "2025-09-28T08:13:42.167749Z",
     "shell.execute_reply": "2025-09-28T08:13:42.167194Z"
    }
   },
   "outputs": [],
   "source": [
    "from river.datasets.synth import FriedmanDrift\n",
    "from river.preprocessing import MinMaxScaler\n",
    "from river.metrics import MAE\n",
    "from river.utils import Rolling\n",
    "from river.tree import HoeffdingTreeRegressor\n",
    "from deep_river.regression import Regressor\n",
    "from torch import nn\n",
    "from tqdm import tqdm\n",
    "import matplotlib.pyplot as plt\n",
    "import torch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-09-28T08:13:42.170553Z",
     "iopub.status.busy": "2025-09-28T08:13:42.170301Z",
     "iopub.status.idle": "2025-09-28T08:13:42.175016Z",
     "shell.execute_reply": "2025-09-28T08:13:42.174532Z"
    }
   },
   "outputs": [],
   "source": [
    "n_samples = 12500\n",
    "change_points = (5000, 7500)\n",
    "friedman = FriedmanDrift(drift_type=\"gra\", position=change_points)\n",
    "\n",
    "\n",
    "def test_train_eval(model, stream, update_interval=100):\n",
    "    results = []\n",
    "    steps = []\n",
    "    step = 0\n",
    "    metric = Rolling(MAE(), window_size=400)\n",
    "    scaler = MinMaxScaler()\n",
    "    for x, y in tqdm(list(stream)):\n",
    "        scaler.learn_one(x)\n",
    "        x = scaler.transform_one(x)\n",
    "        y_pred = model.predict_one(x)\n",
    "        model.learn_one(x, y)\n",
    "        metric.update(y, y_pred)\n",
    "        step += 1\n",
    "        if step % update_interval == 0:\n",
    "            results.append(metric.get())\n",
    "            steps.append(step)\n",
    "    return steps, results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-09-28T08:13:42.177357Z",
     "iopub.status.busy": "2025-09-28T08:13:42.177171Z",
     "iopub.status.idle": "2025-09-28T08:13:51.841172Z",
     "shell.execute_reply": "2025-09-28T08:13:51.840251Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|                                                                                                                                                                                                                                                                                             | 0/12500 [00:00<?, ?it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|█▍                                                                                                                                                                                                                                                                                 | 66/12500 [00:00<00:18, 659.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|████▍                                                                                                                                                                                                                                                                            | 205/12500 [00:00<00:11, 1086.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|███████▌                                                                                                                                                                                                                                                                         | 346/12500 [00:00<00:09, 1232.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|██████████▌                                                                                                                                                                                                                                                                      | 485/12500 [00:00<00:09, 1293.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|█████████████▊                                                                                                                                                                                                                                                                   | 630/12500 [00:00<00:08, 1347.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|████████████████▉                                                                                                                                                                                                                                                                | 773/12500 [00:00<00:08, 1372.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|████████████████████                                                                                                                                                                                                                                                             | 918/12500 [00:00<00:08, 1396.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|███████████████████████                                                                                                                                                                                                                                                         | 1062/12500 [00:00<00:08, 1410.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|██████████████████████████▏                                                                                                                                                                                                                                                     | 1204/12500 [00:00<00:08, 1409.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█████████████████████████████▎                                                                                                                                                                                                                                                  | 1348/12500 [00:01<00:07, 1418.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|████████████████████████████████▍                                                                                                                                                                                                                                               | 1490/12500 [00:01<00:07, 1401.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|███████████████████████████████████▍                                                                                                                                                                                                                                            | 1631/12500 [00:01<00:07, 1399.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|██████████████████████████████████████▌                                                                                                                                                                                                                                         | 1774/12500 [00:01<00:07, 1406.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█████████████████████████████████████████▋                                                                                                                                                                                                                                      | 1915/12500 [00:01<00:07, 1400.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|████████████████████████████████████████████▊                                                                                                                                                                                                                                   | 2058/12500 [00:01<00:07, 1407.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|███████████████████████████████████████████████▊                                                                                                                                                                                                                                | 2199/12500 [00:01<00:07, 1403.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|██████████████████████████████████████████████████▉                                                                                                                                                                                                                             | 2340/12500 [00:01<00:07, 1403.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█████████████████████████████████████████████████████▉                                                                                                                                                                                                                          | 2481/12500 [00:01<00:07, 1401.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|█████████████████████████████████████████████████████████                                                                                                                                                                                                                       | 2625/12500 [00:01<00:06, 1412.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|████████████████████████████████████████████████████████████▏                                                                                                                                                                                                                   | 2767/12500 [00:02<00:06, 1411.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|███████████████████████████████████████████████████████████████▎                                                                                                                                                                                                                | 2909/12500 [00:02<00:06, 1411.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██████████████████████████████████████████████████████████████████▍                                                                                                                                                                                                             | 3051/12500 [00:02<00:06, 1411.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|█████████████████████████████████████████████████████████████████████▌                                                                                                                                                                                                          | 3196/12500 [00:02<00:06, 1422.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|████████████████████████████████████████████████████████████████████████▋                                                                                                                                                                                                       | 3339/12500 [00:02<00:06, 1411.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|███████████████████████████████████████████████████████████████████████████▉                                                                                                                                                                                                    | 3487/12500 [00:02<00:06, 1429.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|███████████████████████████████████████████████████████████████████████████████                                                                                                                                                                                                 | 3631/12500 [00:02<00:06, 1424.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██████████████████████████████████████████████████████████████████████████████████                                                                                                                                                                                              | 3774/12500 [00:02<00:06, 1416.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|█████████████████████████████████████████████████████████████████████████████████████▏                                                                                                                                                                                          | 3916/12500 [00:02<00:06, 1412.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|████████████████████████████████████████████████████████████████████████████████████████▎                                                                                                                                                                                       | 4058/12500 [00:02<00:05, 1408.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███████████████████████████████████████████████████████████████████████████████████████████▍                                                                                                                                                                                    | 4200/12500 [00:03<00:05, 1411.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|██████████████████████████████████████████████████████████████████████████████████████████████▍                                                                                                                                                                                 | 4342/12500 [00:03<00:05, 1399.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|█████████████████████████████████████████████████████████████████████████████████████████████████▌                                                                                                                                                                              | 4483/12500 [00:03<00:05, 1402.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|████████████████████████████████████████████████████████████████████████████████████████████████████▌                                                                                                                                                                           | 4624/12500 [00:03<00:05, 1403.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███████████████████████████████████████████████████████████████████████████████████████████████████████▋                                                                                                                                                                        | 4765/12500 [00:03<00:05, 1403.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▊                                                                                                                                                                     | 4906/12500 [00:03<00:05, 1395.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                                                                                                                                                                  | 5046/12500 [00:03<00:05, 1395.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                                                                                                                                                               | 5189/12500 [00:03<00:05, 1403.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                                                                                                                            | 5331/12500 [00:03<00:05, 1406.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                                                                                                                                                        | 5476/12500 [00:03<00:04, 1418.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                                                                                                                                                     | 5622/12500 [00:04<00:04, 1428.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                                                                                                                                                  | 5765/12500 [00:04<00:04, 1427.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                                                                                                                                               | 5908/12500 [00:04<00:04, 1425.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                                                                                                                                            | 6051/12500 [00:04<00:04, 1419.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                                                                                                                                         | 6193/12500 [00:04<00:04, 1405.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                                                                                                                                      | 6334/12500 [00:04<00:04, 1403.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                                                                                                                                   | 6478/12500 [00:04<00:04, 1411.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                                                                                                | 6620/12500 [00:04<00:04, 1400.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                                                                                                                            | 6762/12500 [00:04<00:04, 1404.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                                                                                                                         | 6904/12500 [00:04<00:03, 1408.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                                                                                                                      | 7045/12500 [00:05<00:03, 1403.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                                                                                                                   | 7186/12500 [00:05<00:03, 1380.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                                                                                                                | 7325/12500 [00:05<00:03, 1368.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                                                                                                             | 7462/12500 [00:05<00:03, 1366.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                                                                                                          | 7603/12500 [00:05<00:03, 1376.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                                                                                                       | 7741/12500 [00:05<00:03, 1375.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                                                                                                    | 7879/12500 [00:05<00:03, 1376.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                                                                                                 | 8019/12500 [00:05<00:03, 1383.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                                                                                              | 8161/12500 [00:05<00:03, 1392.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                                                                                           | 8304/12500 [00:05<00:02, 1401.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                                                                                        | 8446/12500 [00:06<00:02, 1404.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                                                                                     | 8589/12500 [00:06<00:02, 1409.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                                                                                  | 8730/12500 [00:06<00:02, 1408.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                                               | 8872/12500 [00:06<00:02, 1408.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                                                                           | 9016/12500 [00:06<00:02, 1415.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                                                                        | 9158/12500 [00:06<00:02, 1408.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                                                                     | 9299/12500 [00:06<00:02, 1405.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                                                                  | 9440/12500 [00:06<00:02, 1402.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                                                               | 9583/12500 [00:06<00:02, 1408.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                                                            | 9724/12500 [00:06<00:01, 1405.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                                                         | 9865/12500 [00:07<00:01, 1402.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                                                      | 10006/12500 [00:07<00:01, 1392.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                   | 10148/12500 [00:07<00:01, 1400.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                | 10291/12500 [00:07<00:01, 1408.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                                            | 10433/12500 [00:07<00:01, 1409.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                                         | 10575/12500 [00:07<00:01, 1406.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                                      | 10716/12500 [00:07<00:01, 1403.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                                   | 10858/12500 [00:07<00:01, 1405.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                                | 11001/12500 [00:07<00:01, 1411.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                             | 11144/12500 [00:07<00:00, 1415.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                          | 11286/12500 [00:08<00:00, 1414.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                       | 11430/12500 [00:08<00:00, 1419.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                    | 11572/12500 [00:08<00:00, 1411.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                 | 11715/12500 [00:08<00:00, 1414.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████              | 11857/12500 [00:08<00:00, 1411.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏          | 11999/12500 [00:08<00:00, 1408.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏       | 12140/12500 [00:08<00:00, 1402.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎    | 12282/12500 [00:08<00:00, 1404.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 12427/12500 [00:08<00:00, 1416.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 12500/12500 [00:08<00:00, 1398.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "class SimpleMLP(nn.Module):\n",
    "    def __init__(self, n_features):\n",
    "        super().__init__()\n",
    "        self.hidden = nn.Linear(n_features, 20)\n",
    "        self.logit = nn.Linear(20, 1)\n",
    "\n",
    "    def forward(self, x):\n",
    "        h = self.hidden(x)\n",
    "        h = torch.relu(h)\n",
    "        return self.logit(h)\n",
    "\n",
    "\n",
    "mlp = Regressor(\n",
    "    SimpleMLP(10),\n",
    "    loss_fn=\"l1\",\n",
    "    optimizer_fn=\"adam\",\n",
    "    lr=0.005,\n",
    "    seed=42,\n",
    ")\n",
    "steps, results_mlp = test_train_eval(mlp, friedman.take(n_samples))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-09-28T08:13:51.844311Z",
     "iopub.status.busy": "2025-09-28T08:13:51.843711Z",
     "iopub.status.idle": "2025-09-28T08:13:53.466763Z",
     "shell.execute_reply": "2025-09-28T08:13:53.465896Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|                                                                                                                                                                                                                                                                                             | 0/12500 [00:00<?, ?it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|██████████████████▉                                                                                                                                                                                                                                                              | 865/12500 [00:00<00:01, 8648.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█████████████████████████████████████▋                                                                                                                                                                                                                                          | 1730/12500 [00:00<00:01, 8607.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|███████████████████████████████████████████████████████████                                                                                                                                                                                                                     | 2714/12500 [00:00<00:01, 9095.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|███████████████████████████████████████████████████████████████████████████████▎                                                                                                                                                                                                | 3646/12500 [00:00<00:00, 9180.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███████████████████████████████████████████████████████████████████████████████████████████████████▎                                                                                                                                                                            | 4564/12500 [00:00<00:00, 8994.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                                                                                                                                                      | 5576/12500 [00:00<00:00, 9368.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                                                                                                                                  | 6514/12500 [00:00<00:00, 8912.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                                                                                                              | 7410/12500 [00:00<00:00, 8922.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                                                                                           | 8306/12500 [00:00<00:00, 8751.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                                                                        | 9184/12500 [00:01<00:00, 6431.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                                                       | 9950/12500 [00:01<00:00, 6723.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                                      | 10723/12500 [00:01<00:00, 6978.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                 | 11718/12500 [00:01<00:00, 7767.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 12500/12500 [00:01<00:00, 8063.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "tree = HoeffdingTreeRegressor()\n",
    "steps, results_tree = test_train_eval(tree, friedman.take(n_samples))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-09-28T08:13:53.469105Z",
     "iopub.status.busy": "2025-09-28T08:13:53.468913Z",
     "iopub.status.idle": "2025-09-28T08:13:53.671967Z",
     "shell.execute_reply": "2025-09-28T08:13:53.671358Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x136ced900>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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bt0Ktcv/nqSmptKpUydTfu21vLy8Kq2f1RbM9u/f3/SJIt9DDz1E8+bNeemll24ayAKmT0tDhgyprG6WyrVpBpqm1YgKC0IIIYQonRYtWrB169ZC27Zu3UqzZs2wsLCgQ4cOGAwG4uLi6N27d4XPtXPnzkLbduzYUaFjBgcHk5uby/79++nUqRMAERERJCQkVOi41/Lx8aFevXqcOXOG8ePHF9mmY8eO/PLLL3h7e5uqIlSFagtmnZycaN26daFtDg4OeHh4mLaHhoZSv359Zs6cCcCbb75J9+7dadKkCYmJiXzwwQecO3eOyZMnV3n/r5W/aIJRgxyDhrWlBLNCCCFEbfHcc8/RpUsX3nrrLcaOHcv27dv5/PPPTTP1mzVrxvjx4wkNDTVNiLp8+TL//PMPbdu2ZejQoaU+11NPPUXPnj358MMPGTFiBGvXrr1pisHNNG/enAEDBvDII48wd+5crKyseO6557CzszPrANuMGTN46qmncHFxYdCgQWRlZbFnzx4SEhJ49tlnGT9+PB988AEjRozgzTffpEGDBpw7d45ly5bx4osvFju/qaKqvTRXSaKiooiJiTE9TkhIYMqUKbRo0YIhQ4aQnJzMtm3baNmyZTX2smDRBJBas0IIIURt07FjR3799VcWL15M69atee2113jzzTcLLRywYMECQkNDee655wgODmbkyJHs3r2bgICAMp2re/fuzJ8/n9mzZ9OuXTv+/vtvXnnllQq/hu+//x4fHx9uu+02Ro0axZQpU3BycjLr4lKTJ0/m66+/ZsGCBbRp04Y+ffqwcOFCGjZsCIC9vT2bNm0iICCA0aNH06JFCyZNmkRmZmaljtTqNK2SCrbVUMnJybi4uJCUlGS2b6ymaTR6eTWaBrv+2x9vp+pflUyIOic7G959V91/+WWopBIwooaQn3eVyczM5OzZszRs2LBGrLopSuf8+fP4+/uzfv16+vfvX93dKVJJv1tlideqvc7srUCn02FjqSczx0iWLJwghBBCiCr277//kpqaSps2bYiJieHFF18kKCiI2267rbq7VukkmDUTWysLMnOMUtFACCGEEFUuJyeHl19+mTNnzuDk5ESPHj346aefauwStOYkwayZqElgObKkrRBCCCGq3MCBAxk4cGB1d6Na1OgJYLWJqdasTAATQgghhKgyEsyaiSxpK4QQ4lZW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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8, 4))\n",
    "ax.plot(steps, results_mlp, label=\"MLP\")\n",
    "ax.plot(steps, results_tree, label=\"Hoeffding Tree\")\n",
    "for change_point in change_points:\n",
    "    ax.axvline(change_point, color=\"red\", alpha=0.5)\n",
    "ax.set_xlim(0, n_samples)\n",
    "ax.set_ylim(1, 5)\n",
    "plt.text(\n",
    "    int(change_points[0] / 2), 4, \"Concept 1\", horizontalalignment=\"center\"\n",
    ")\n",
    "plt.text(\n",
    "    int(change_points[0] + (change_points[1] - change_points[0]) / 2),\n",
    "    4,\n",
    "    \"Concept 2\",\n",
    "    horizontalalignment=\"center\",\n",
    ")\n",
    "plt.text(\n",
    "    int(change_points[1] + (n_samples - change_points[1]) / 2),\n",
    "    4,\n",
    "    \"Concept 1\",\n",
    "    horizontalalignment=\"center\",\n",
    ")\n",
    "\n",
    "ax.set_xlabel(\"Steps\")\n",
    "ax.set_ylabel(\"Moving MAE\")\n",
    "ax.legend()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "deep-river",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
